﻿namespace FFF.Test.Entity.CF
{
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using Abp.Domain.Entities;
    using Abp.AutoMapper;
    using FFF.Test.Entity.CF.View;
    using FFF.Test.Entity.Framework.Entity;

	/// <summary>
    /// 配置类业务参数表
    /// </summary>
	[Table("CF_BizConfigOption")]
    [Display(Name = "配置类业务参数表", Description = "配置类业务参数表")]
    [AutoMapFrom(typeof(ViewCFBizConfigOption))] 
    public partial class CFBizConfigOptionEntity : BaseEntity<Guid>
    {
        /// <summary>
        /// 主键
        /// </summary>
        [Column("BizConfigOptionGUID")]
        [Display(Name = "配置类业务参数表主键", Description = "配置类业务参数表主键")]
		[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public override Guid Id { get; set; }

		/// <summary>
        /// 配置类业务参数分组GUID
        /// </summary>
		[Display(Name = "配置类业务参数分组GUID", Description = "配置类业务参数分组GUID")]
        [Column("BizConfigGroupGUID")]
        public Guid? BizConfigGroupGUID { get; set; }   

		/// <summary>
        /// 配置类业务参数名称
        /// </summary>
		[Display(Name = "配置类业务参数名称", Description = "配置类业务参数名称")]
        [Column("BizConfigOptionName")]
		[StringLength(128)]
        public string BizConfigOptionName { get; set; }   

		/// <summary>
        /// 业务参数类型(1,文本框;2,数字框;3,单选;4,多选;5,日期;6,下拉)
        /// </summary>
		[Display(Name = "业务参数类型(1,文本框;2,数字框;3,单选;4,多选;5,日期;6,下拉)", Description = "业务参数类型(1,文本框;2,数字框;3,单选;4,多选;5,日期;6,下拉)")]
        [Column("BizOptionType")]
        public CFBizConfigOptionBizOptionTypeEnum BizOptionType { get; set; }   

		/// <summary>
        /// 如果是checkbox和下拉那么需要配置对应的值逗号分割
        /// </summary>
		[Display(Name = "如果是checkbox和下拉那么需要配置对应的值逗号分割", Description = "如果是checkbox和下拉那么需要配置对应的值逗号分割")]
        [Column("BizOptions")]
		[StringLength(2048)]
        public string BizOptions { get; set; }   

		/// <summary>
        /// 参数的值多个以,分割
        /// </summary>
		[Display(Name = "参数的值多个以,分割", Description = "参数的值多个以,分割")]
        [Column("BizOptionValue")]
		[StringLength(2048)]
        public string BizOptionValue { get; set; }   

		/// <summary>
        /// 参数的排序
        /// </summary>
		[Display(Name = "参数的排序", Description = "参数的排序")]
        [Column("BizOptionOrder")]
		[StringLength(72)]
        public string BizOptionOrder { get; set; }   

		/// <summary>
        /// 参数范围GUID有可能集团有可能公司
        /// </summary>
		[Display(Name = "参数范围GUID有可能集团有可能公司", Description = "参数范围GUID有可能集团有可能公司")]
        [Column("BizOptionScopeGUID")]
        public Guid? BizOptionScopeGUID { get; set; }   

		/// <summary>
        /// 参数备注
        /// </summary>
		[Display(Name = "参数备注", Description = "参数备注")]
        [Column("BizOptionRemark")]
		[StringLength(99999)]
        public string BizOptionRemark { get; set; }   

		/// <summary>
        /// 配置类参数编码
        /// </summary>
		[Display(Name = "配置类参数编码", Description = "配置类参数编码")]
        [Column("BizOptionCode")]
		[StringLength(512)]
        public string BizOptionCode { get; set; }   
    }

    /// <summary>
    /// 业务参数类型(1,文本框;2,数字框;3,单选;4,多选;5,日期;6,下拉)枚举
    /// </summary>
    public enum CFBizConfigOptionBizOptionTypeEnum
    {
        /// <summary>
        /// 没有值
        /// </summary>
        None = 0,

        /// <summary>
        /// 文本框
        /// </summary>
        文本框 = 1,

        /// <summary>
        /// 数字框
        /// </summary>
        数字框 = 2,

        /// <summary>
        /// 单选
        /// </summary>
        单选 = 3,

        /// <summary>
        /// 多选
        /// </summary>
        多选 = 4,

        /// <summary>
        /// 日期
        /// </summary>
        日期 = 5,

        /// <summary>
        /// 下拉
        /// </summary>
        下拉 = 6
    }
}
